Face recognition is a prototypical image processing application where privacy constraints come into play, due to the sensitiveness of the involved biometric signals. In a common privacy-aware face recognition scenario, a user presents his/her face for matching against a database of enrolled clients, to verify a given identity; the database must not be disclosed to the new user, as this would harm the security of the system and the privacy of the enrolled users, while the face presented by the query user must not be disclosed to the recognition system, for preserving the user's privacy. There have been several recent proposals of efficient privacy-preserving solutions for this scenario, combining additive homomorphic encryption and garbled circuits, both focused on private face identification using a simple but effective recognition system, called Eigenfaces, based on applying a PCA projection matrix to the presented face, comparing the resulting coefficient vector to each of the templates in the database and picking the closest match.
However, this traditional scenario does not protect the privacy of the enrolled users, as the recognition system has clear-text access to the templates stored in the database and to the projection matrix. More involved scenarios, like outsourced ones, where Clouds or other untrusted environments are used not only for storing the databases but for performing certain operations, are becoming increasingly ubiquitous. If the matching database is stored in an untrusted third party together with the detection logic, enrolled users' privacy must also be protected, and that party must have access neither to the database contents nor to the fresh faces presented against the system for recognition. Additionally, it is desirable that the system can run autonomously without interaction rounds with the client, requiring the lowest computational effort from the client-side, that usually runs on an embedded or mobile device.